package com.usian.controller;

import com.usian.utils.QiniuUtils;
import com.usian.utils.Result;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.Arrays;
import java.util.List;
import java.util.UUID;

@RestController
public class FileUploadController {

    private static final List<String> CONTENT_TYPES = Arrays.asList("image/jpeg","image/gif");

    /**
     * 图片上传（上传到本机）
     */

   /* @RequestMapping("/file/upload")
    public Result fileUpload(MultipartFile file){
        try {
            //获取源文件名称
            String filename = file.getOriginalFilename();
            //校验文件名称
            String type = file.getContentType();
            if (!CONTENT_TYPES.contains(type)){
                //文件类型不合法，直接返回
                return Result.error("文件类型不合法："+filename);
            }

            //校验文件的内容
            BufferedImage bufferedImage = ImageIO.read(file.getInputStream());
            if (bufferedImage==null){
                return Result.error("文件内容不合法："+filename);
            }

            //保存到服务器
            file.transferTo(new File("D:\\images\\" +filename));
            //生成url地址，返回
            return Result.ok("yjr.usian.com/"+filename);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("服务器内部错误");
        }
    }*/


    /**
     * 图片上传（上传到云端）
     */
    @RequestMapping("/file/upload")
    public Result upload(MultipartFile file){
        try {
            //获取源文件名称
            String filenameOld = file.getOriginalFilename();
            //获取路径
            String filename = UUID.randomUUID().toString()+filenameOld.substring(filenameOld.lastIndexOf("."));
            //执行上传
            QiniuUtils.upload2Qiniu(file.getBytes(),filename);

            return Result.ok(filename);
        } catch (Exception e) {
            e.printStackTrace();
            return Result.error("上传失败");
        }
    }

}
